1 REM =============================== 2 REM ITERATIVE DESIGNS 64 3 REM C-64 VERSION 4 REM RUPERT REPORT #49 5 REM 9 REM ====== FOR C-64 ONLY! ======= 10 GOSUB 1000 :REM INITIALIZE GRAPHICS 30 FOR X=0 TO 319 40 S=1+TAN(0.005*X) 50 FOR Y=0 TO 199 STEP S 60 GOSUB 2000 :REM SET PIXEL AT X,Y 70 NEXT Y 80 NEXT X 90 GET A$ : IF A$="" THEN 90 100 GOSUB 3000 110 END 950 REM ******************************** 960 REM 970 REM >>> INITIALIZE BIT MAP MODE <<< 980 REM 990 REM SET & RESET BIT FUNCTIONS 1000 DEF FNSB(N)=PEEK(MM) OR 2^N 1010 DEF FNRB(N)=PEEK(MM) AND (255-2^N) 1020 VV=53248 :REM VIC-II REGISTER 0 1030 :REM >>> PUT BIT MAP AT 8192 <<< (SET BIT 3 OF VIC REGISTER 24) 1040 MM=VV+24 : POKE MM,FNSB(3) 1050 :REM >>> SELECT BIT MAP MODE <<< (SET BIT 5 OF VIC REGISTER 17) 1060 MM=VV+17 : POKE MM,FNSB(5) 1070 BASE=8192 :REM START BIT MAP MEMORY 1080 :REM >>> CLEAR BIT MAP <<< 1090 GOSUB 4000 1100 :REM > SELECT COLORS C1 AND C0 < 1110 C1=1 : C0=0 : CC=16*C1 + C0 1120 :REM FILL SCREEN MEMORY WITH COLOR 1130 FOR MM=1024 TO 2023:POKE MM,CC:NEXT 1140 RETURN 1150 : 1970 REM ============================== 1980 REM > TURN ON PIXEL AT (X,Y) <<< 1990 REM ============================== 2000 BIT=7-(X AND 7) 2010 MM=BASE+320*INT(Y/8)+8*INT(X/8)+(Y AND 7) 2020 POKE MM,FNSB(BIT) 2030 RETURN 2040 : 2970 REM ========================== 2980 REM >>> RESET BIT MAP MODE <<< 2990 REM ========================== 3000 MM=VV+17 : POKE MM,FNRB(5) 3010 REM RESTORE SCREEN MEMORY BASE 3020 MM=VV+24 : POKE MM,FNRB(3) 3030 RETURN 3960 : 3970 ============================ 3980 >>> CLEAR BIT MAP SCREEN <<< 3990 ============================ 4000 FOR M=828 TO 828+43 4010 READ B : POKE M,B 4020 CK=CK+B 4030 NEXT 4040 IF CK<>5133 THEN PRINT "DATA ERROR IN LINES 4060 - 4110" : STOP 4050 SYS 828: RETURN 4060 DATA 76,68,3,0,32,31,64,0 4070 DATA 173,63,3,133,251,173,64,3 4080 DATA 133,252,174,65,3,160,0,173 4090 DATA 67,3,136,145,251,208,251,230 4100 DATA 252,202,48,7,208,244,172,66 4110 DATA 3,208,239,96